﻿from django.db import models
import datetime

class Customer(models.Model):
    SEX_CHOICES = (
        ("male", "Nam"),
        ("female", "Nữ")
    )
    HOUSE_OWNERSHIP_CHOICES = (
        ("self", "Sở hữu riêng"),
        ("family", "Sở hữu chung với gia đình"),
        ("rent", "Thuê"),
        ("other", "Khác")
    )
    MARRIAGE_CHOICES = (
        ("married", "Đã có gia đình"),
        ("single", "Độc thân"),
        ("other", "Khác")
    )
    EDUCATION_CHOICES = (
        ("postgrad", "Trên đại học"),
        ("grad", "Đại học/Cao đẳng"),
        ("high", "Trung học"),
        ("low", "Dưới trung học")
    )
    POSITION_CHOICES = (
        ("director", "Giám đốc (hoặc tương đương)"),
        ("head", "Trưởng phòng (hoặc tương đương)"),
        ("employee", "Nhân viên (hoặc tương đương)"),
        ("unstable", "Không có việc làm ổn định")
    )
    BANK_RELATIONSHIP_CHOICES = (
        ("frequent", "Thường xuyên sử dụng dịch vụ"),
        ("infrequent", "Có sử dụng nhưng không thường xuyên"),
        ("rare", "Rất ít sử dụng"),
        ("new", "Khách hàng mới")
    )
    FUNDING_PURPOSE_CHOICES = (
        ("house", "Vay mua/sửa chữa nhà"),
        ("furniture", "Vay mua sắm vật dụng gia đình"),
        ("car", "Vay mua ô tô"),
        ("study", "Vay cưới hỏi/học tập")
    )
    
    # PERSONAL INFORMATION
    full_name = models.CharField(max_length=50, verbose_name="Họ và Tên")
    birthday = models.DateField(verbose_name="Ngày sinh")
    sex = models.CharField(max_length=10, choices=SEX_CHOICES, verbose_name="Giới tính")
    identity = models.CharField(max_length=20, verbose_name="Số CMND")
    identity_issued_date = models.DateField(verbose_name="Ngày cấp")
    living_address = models.CharField(max_length=200, verbose_name="Địa chỉ thường trú")
    contact_address = models.CharField(max_length=200, verbose_name="Địa chỉ liên lạc")
    telephone = models.CharField(max_length=20, verbose_name="Điện thoại nhà riêng")
    cellphone = models.CharField(max_length=20, verbose_name="Điện thoại di động")
    email = models.EmailField()
    house_ownership = models.CharField(max_length=10, choices=HOUSE_OWNERSHIP_CHOICES, verbose_name="Hình thức sở hữu nhà")
    marriage = models.CharField(max_length=15, choices=MARRIAGE_CHOICES, verbose_name="Tình trạng hôn nhân")
    education = models.CharField(max_length=15, choices=EDUCATION_CHOICES, verbose_name="Trình độ học vấn")
    
    # WORK INFORMATION
    company = models.CharField(max_length=200, verbose_name="Cơ quan")
    company_address = models.CharField(max_length=200, verbose_name="Địa chỉ cơ quan")
    company_phone = models.CharField(max_length=20, verbose_name="Điện thoại cơ quan")
    company_fax = models.CharField(max_length=20, verbose_name="Fax")
    company_position = models.CharField(max_length=20, choices=POSITION_CHOICES, verbose_name="Chức vụ")
    company_duration = models.PositiveIntegerField(verbose_name="Thời gian làm việc tại cơ quan (năm)")
    self_income = models.DecimalField(max_digits=15, decimal_places=2, verbose_name="Tổng thu nhập cá nhân hàng năm")
    family_income = models.DecimalField(max_digits=15, decimal_places=2, verbose_name="Tổng thu nhập của gia đình hàng năm")
    no_dependents = models.PositiveSmallIntegerField(verbose_name="Số người sống phụ thuộc (về kinh tế)")
    bank_relationship = models.CharField(max_length=15, choices=BANK_RELATIONSHIP_CHOICES, verbose_name="Quan hệ với ngân hàng")
    
    # FUNDING INFORMATION
    purpose = models.CharField(max_length=15, choices=FUNDING_PURPOSE_CHOICES, verbose_name="Mục đích vay")
    expect_fund = models.DecimalField(max_digits=15, decimal_places=2, verbose_name="Số tiền vay dự kiến")
    expect_fund_words = models.CharField(max_length=100, verbose_name="Số tiền vay dự kiến bằng chữ")
    expect_duration = models.PositiveSmallIntegerField(default=12, verbose_name="Thời gian vay dự kiến (tháng)")
    
    is_assessed = models.BooleanField(default=False)
    
    def __unicode__(self):
        return self.full_name